<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="../common/common-include.jsp" %>
<%@ include file="../common/jquery-easyui.jsp" %>
<link rel="stylesheet" type="text/css" href="<prms:constant name="ContextPath" />/css/main.css">
<script type="text/javascript"
	src="<prms:constant name="ContextPath" />/js/My97DatePicker/WdatePicker.js">
</script>

<script type="text/javascript"
	src="<prms:constant name="ContextPath" />/js/task/task.js">
</script>

<div style="float: right;margin-right: 100px">
	<a href="#" class="easyui-linkbutton" onclick="completeTask();"><s:text name='label.complete'/></a>
	<a href="#" class="easyui-linkbutton" onclick="delayTask();"><s:text name='label.delay'/></a>
	<a href="#" class="easyui-linkbutton" onclick="deleteTask();"><s:text name='label.delete'/></a>
	<a href="#" class="easyui-linkbutton" onclick="moveTask();"><s:text name='label.move'/></a>
	<select id="selectTList">
		<option value="">请选择...</option>
		<c:forEach var="item" items="${tlists}" varStatus="status">
		<option value="${item.id }">${item.listName }</option>
		</c:forEach>
	</select>
	<br/>
	选择：<a href="#" onclick="selectAll();">全部,</a>  <a href="#" onclick="selectNone();">无</a>
	<br/><br/>
	
	<div class="easyui-tabs" style="width:300px;height:250px">
		<div title="任务" style="padding:10px">
			任务名称：<input name="updateTaskName" id="updateTaskName" type="text" style="width:150px" disabled="disabled"/><br/>
			到期时间：<input type="text" name="startTime" id="startTime" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm'});" disabled="disabled" style="width:150px" class="Wdate"></input><br/> 
		</div>
		<div title="便签" style="padding:10px">
			<textarea rows="10" cols="40" name="note" id="note"></textarea>
			<input type="button" value="保存" onclick="saveNote();"/>
		</div>
	</div>
	<!-- 选中的列表 -->
	<input type="hidden" name="tlistName" id="tlistName" value="" /><br/>
	<!-- 选中的面板 -->
	<input type="hidden" name="selectedTab" id="selectedTab" value="" /><br/>
</div>

	<!-- 当表单只有一个文本款，回车会自动提交表单 -->
	<input name="taskName" id="taskName" type="text" class="taskInput"/> 
	<br/><br/>
	
	<!-- 任务列表 -->
	<div id="tt" class="easyui-tabs" style="width: 500px; height: 300px">
		<c:forEach var="item" items="${tlists}" varStatus="status">  
		<div title="${item.listName }" id="${item.listName }" style="padding: 0px">
			<div id="tasks_${item.listName }"></div>
		</div>   
		</c:forEach>  
	</div>


<script type="text/javascript">
	//面板初始化
	$('#tt').tabs({
		border : true,
		onSelect : function(title) {
			//初始化不需要强制刷新面板
			refrashTab(title,false);
		}
	});
	
	//刷新面板 force--强制刷新面板（解决在面板内更新数据后刷新面板问题）
	function refrashTab(title,force){
		if(!hasRefrashed(title)||force){
			//$('#tasks_'+title).load("taskAction_searchTask.action",{tlistName:title});
			//同步Ajax
			$.ajax({
				async: false, 
				type : "POST", 
				url : 'taskAction_searchTask.action', 
				dataType : 'html',
				data:{tlistName:title},
				success : function(result) { 
					$('#tasks_'+title).html(result);
				} 
			});
			//设置选中的列表
			$('#tlistName').val(title);
			//设置选中面板的id
			$('#selectedTab').val('tasks_'+title);
			initTaskTab();
		}else{
			//alert('面板无需重复刷新');
		}
	}
	
	//判断面板是否已刷新
	function hasRefrashed(title){
		return $('#selectedTab').val()=='tasks_'+title;
	}
	
	//创建任务
	function createTask(){
		var listName=$('#tlistName').val();
		var taskName=$('#taskName').val();
		if(taskName!=''){
			$.post("createTask.action",{tlistName:listName,taskName:taskName},function(data){
				$('#taskName').val('');
				showMsg(data);
				refrashTab($('#tlistName').val(),true);
			    initTaskTab();
			});
		}else{
			alert('请输入任务名称');
		}
	}
	
	//删除任务
	function deleteTask(){
		var selected=getSelectedTaskId();
		$.post("deleteTask.action",{taskIds:selected},function(data){
			showMsg(data);
	    	refrashTab($('#tlistName').val(),true);
		    initTaskTab();
	    });
	}
	
	//完成任务
	function completeTask(){
		var selected=getSelectedTaskId();
		$.post("completeTask.action",{taskIds:selected},function(data){
			showMsg(data);
	    	refrashTab($('#tlistName').val(),true);
		    initTaskTab();
	    });
	}
	
	//推迟任务
	function delayTask(){
		var selected=getSelectedTaskId();
		var selectedBoxId=getSelectedBoxId();
		$.post("delayTask.action",{taskIds:selected},function(data){
			showMsg(data);
	    	refrashTab($('#tlistName').val(),true);
		    for(t in selectedBoxId){
		    	$('#'+selectedBoxId[t]).attr("checked", true);
		    }
		    initTaskTab();
		    setSelectedRowColor();
	    });
	}
	
	//移动任务至另一个列表
	function moveTask(){
		var selected=getSelectedTaskId();
		var tlistId = $("#selectTList").find("option:selected").val();
		if(tlistId==''){
			alert('请选择列表');
			return;
		}
		$.post("moveTask.action",{taskIds:selected,tlistId:tlistId},function(data){
			showMsg(data);
	    	refrashTab($('#tlistName').val(),true);
		    initTaskTab();
	    });
	}
	
	//选中任务复选框，更新组件值
	function initTaskTab(){
		if(isMultipleSelect()||!isSelect()){
			$('#updateTaskName').val('').attr("disabled","disabled");
			$('#note').val('').attr("disabled","disabled");
			$('#startTime').val('').attr("disabled","disabled");
		}else {
			var select=$('#selectedTab').val();
			$('#updateTaskName').removeAttr('disabled');
			$('#note').removeAttr('disabled');
			$('#startTime').removeAttr('disabled');
			$('#'+select+ ' input[type=checkbox]').each(function(){
			    if(this.checked){
			    	var id=$(this).val();
			    	var taskName=$('#item_name_'+id).val();
			    	var startTime=$('#item_startTime_'+id).val();
			    	var note=$('#item_note_'+id).val();
			    	$('#updateTaskName').val(taskName);
			    	$('#startTime').val(startTime);
			    	$('#note').val(note);
			    }
			});
		}
	}
	
	//设置到期
	$('#startTime').blur(function(){
		var updateTaskId = getSelectedTaskId();
		var oldStartTime=$('#item_startTime_'+updateTaskId).val();
		if(checkSelect()&&oldStartTime!=$('#startTime').val()){
			updateStartTime();
		}
	});

	//设置任务开始时间
	function updateStartTime() {
		var updateTaskId = getSelectedTaskId();
		var startTime = $('#startTime').val();
		$.post("updateTask.action", {
			updateType : "updateTaskStartTime",
			updateTaskId : updateTaskId,
			updateTaskStartTime : startTime
		}, function(data) {
			showMsg(data);
			refrashTab($('#tlistName').val(), true);
			$('#box_' + updateTaskId).attr("checked", true);
			initTaskTab();
			setSelectedRowColor();
		});
	}
	
	$('#updateTaskName').blur(function() {
		updateTaskName();
	});

	//更新任务名称
	function updateTaskName() {
		var updateTaskId = getSelectedTaskId();
		var updateTaskName = $('#updateTaskName').val();
		$.post("updateTask.action", {
			updateType : "updateName",
			updateTaskId : updateTaskId,
			updateTaskName : updateTaskName
		}, function(data) {
			showMsg(data);
			refrashTab($('#tlistName').val(), true);
			$('#box_' + updateTaskId).attr("checked", true);
			initTaskTab();
			setSelectedRowColor();
		});
	}

	// 键盘监听，更新任务优先级
	$(document).keypress(
			function(e) {
				if (e.which == 13) {
					if (document.activeElement.id=="taskName") {
						createTask();
					}
				} else {
					var p = '';
					switch (e.which) {
					case 49:
						p = '1';
						break;
					case 50:
						p = '2';
						break;
					case 51:
						p = '3';
						break;
					case 52:
						p = '4';
						break;
					}
					if (p != '') {
						if (isUpdateP()&& checkSelect()) {
							updateTaskP(p);
						}
					}
				}
			});
	
	//判断是否是更新任务优先级（根据焦点是否存在于指定的控件上）
	function isUpdateP(){
		if(document.activeElement.id=="taskName"||
				document.activeElement.id=="updateTaskName"||
				document.activeElement.id=="startTime"||
				document.activeElement.id=="note"){
			return false;
		}
		return true;
	}

	//更新任务的优先级
	function updateTaskP(p) {
		var selectedTaskId = getSelectedTaskId();
		var selectedBoxId = getSelectedBoxId();
		$.post("updateTask.action", {
			taskPriority : p,
			updateType : "updatePriority",
			taskIds : selectedTaskId
		}, function(data) {
			showMsg(data);
			refrashTab($('#tlistName').val(), true);
			for (t in selectedBoxId) {
				$('#' + selectedBoxId[t]).attr("checked", true);
			}
			initTaskTab();
			setSelectedRowColor();
		});
	}

	//保存任务便签
	function saveNote() {
		var updateTaskId = getSelectedTaskId();
		var updateTaskNote = $('#note').val();
		$.post("updateTask.action", {
			updateType : "updateTaskNote",
			updateTaskId : updateTaskId,
			updateTaskNote : updateTaskNote
		}, function(data) {
			showMsg(data);
			refrashTab($('#tlistName').val(), true);
			$('#box_' + updateTaskId).attr("checked", true);
			initTaskTab();
		});
	}

	//获得选中的复选框id
	function getSelectedBoxId() {
		var select = $('#selectedTab').val();
		var arr = new Array();
		var i = 0;
		$('#' + select + ' input[type=checkbox]').each(function() {
			if (this.checked) {
				arr[i++] = this.id;
			}
		});
		return arr;
	}

	//获得所有选中任务的id
	function getSelectedTaskId() {
		var select = $('#selectedTab').val();
		var str = "";
		var i = 0;
		$('#' + select + ' input[type=checkbox]').each(function() {
			if (this.checked) {
				str += $(this).val() + "_";
				i++;
			}
		});
		//单选去除“_”
		if (i == 1) {
			str = str.replace("_", "");
		}
		return str;
	}
</script>




